// 函数类型

export {}; // 确保跟其他示例没有成员冲突

// function func1(a: number, b: number): string {
//   return 'func1';
// }
// func1(100, 200);
// func1(100);
// func1(100, 200, 300);

// 参数可选
// function func1(a: number, b?: number): string {
//   return 'func1';
// }
// func1(100, 200);
// func1(100);
// func1(100, 200, 300);

// 默认参数s
// function func1(a: number, b: number = 200): string {
//   return 'func1';
// }
// func1(100, 200);
// func1(100);
// func1(100, 200, 300);

// 默认参数
// function func1(a: number, b: number = 200): string {
//   return 'func1';
// }
// func1(100, 200);
// func1(100);
// func1(100, 200, 300);

// 任意参数
// function func1(a: number, b: number = 200, ...rest: number[]): string {
//   return 'func1';
// }
// func1(100, 200);
// func1(100);
// func1(100, 200, 300);

// 函数表达式所对应的限制
const func2: (a: number, b: number) => string = function (
  a: number,
  b: number
): string {
  return 'func2';
};
